home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Network Support Library
/
RoseWare - Network Support Library.iso
/
apidev
/
tpapi.exe
/
NWDPMI.PA1
< prev
next >
Wrap
Text File
|
1994-01-14
|
4KB
|
94 lines
{#Z+}
(*(10U&l12D(s4099T&k2S*)
{***************************************************************************}
{** Program : NWDPMI **}
{***************************************************************************}
{** Version : 1.53 ** Started : 11/11/91 ** Ended : / / **}
{***************************************************************************}
{******************************** Description ******************************}
{***************************************************************************}
{** DPMI library for Netware API **}
{** **}
{** **}
{** **}
{** **}
{** **}
{***************************************************************************}
{******************************** Information ******************************}
{***************************************************************************}
{** Provides DPMI Services **}
{** **}
{** **}
{** **}
{** This code is (c) 1991 - 1994 Antonio Covelli. ALL RIGHTS RESERVED. **}
{** Portions (c) Novell Inc, **}
{** **}
{** **}
{***************************************************************************}
{$I NETWARE.INC}
{#Z-}
UNIT NWDPMI;
Interface
const
MaxBufferSize = 520;
{ The maximum buffer size allowed in the request/receive buffers }
Type
PRealModeRegisters = ^TRealModeRegisters;
TRealModeRegisters = Record
Case Integer Of
0 : {32 bit registers}
(EDI, ESI, EBP, EXX, EBX, EDX, ECX, EAX : LongInt;
Flags, ES, DS, FS, GS, IP, CS, SP, SS : word);
1 : {16 bit registers}
(DI, DIH, SI, SIH, BP, BPH, XX, XXH : WORD;
CASE INTEGER OF
0 :
(BX, BXH, DX, DXH, CX, CXH, AX, AXH : WORD);
1 :
(BL, BH, BLH, BHH, DL, DH, DLH, DHH,
CL, CH, CLH, CHH, AL, AH, ALH, AHH : BYTE));
END;
PBuffer = ^TBuffer;
TBuffer = ARRAY [0 .. MaxBufferSize] OF BYTE;
TDualPtr = record
RealPtr : PBuffer;
ProtPtr : PBuffer;
Result : longint;
end;
function SimRealModeInt (IntNumber : Byte; StackCopy : word;
var Regs : TRealModeRegisters) : boolean;
function CallRealModeProc (CallerID, DestID, DestFunc : word;
var Regs) : boolean;
{StackCopy = number of words to copy from protected mode stack to real mode stack
If none needed pass in 0}
procedure AllocBuf (var P : TDualPtr; Size : word);
procedure ReleaseBuf (var P : TDualPtr; Size : word);